home *** CD-ROM | disk | FTP | other *** search
/ Apple II Magazines (DO) / Softdisk Magazette Volume 2, No. 03 (1982-11)(Softdisk)(Side B).zip / Softdisk Magazette Volume 2, No. 03 (1982-11)(Softdisk)(Side B).do / INVADERS.bas < prev    next >
BASIC Source File  |  1996-12-24  |  7KB  |  203 lines

  1. 1  REM INVADERS, MARK PELCZARSKI
  2. 10  GOSUB 1610
  3. 20  GOSUB 1800
  4. 30  PRINT "           <PRESS ANY KEY>",: GET A$
  5. 40  HOME 
  6. 50  POKE 232,0: POKE 233,64
  7. 60  CLEAR 
  8. 70  DIM W%(30,4),M%(30,8)
  9. 80 C(1) = 6:C(2) = 7:C(3) = 5
  10. 90  SCALE= 1: ROT= 0
  11. 100 MX = 5
  12. 110 AD = 1
  13. 120 CH = 250
  14. 130  HGR 
  15. 140  HCOLOR= 1
  16. 150  FOR I = 2 TO 30  STEP 5
  17. 160  FOR J = I TO I +1
  18. 170  FOR K = 1 TO 4
  19. 180 W%(J,K) = 2
  20. 190  DRAW 2 AT (J -1) *9 +2,133 +4 *K
  21. 200  NEXT K: NEXT J: NEXT I
  22. 210  FOR I = 3 TO 30  STEP 3
  23. 220  FOR J = 1 TO 4
  24. 230 M%(I,J) =  INT( SQR( RND(1) *9 +1))
  25. 240  HCOLOR= C(M%(I,J))
  26. 250  DRAW 4 AT (I -1) *9,(J -1) *19
  27. 260  NEXT J: NEXT I
  28. 270  HCOLOR= 7:PX =  INT( PDL(0) *.117)
  29. 280 XX =  PDL(0) *1.055: DRAW 3 AT XX,156
  30. 290 LX = 1:LY = 4
  31. 300  HOME : VTAB 22
  32. 310  INPUT "LEVEL (1-EASIEST, TO 10-HARDEST) ? ";LE
  33. 320  HOME : VTAB 22: PRINT "SCORE","HITS"
  34. 330 MN = 0:HN = 0
  35. 340  VTAB 23: PRINT MN,HN
  36. 350  VTAB 24: PRINT "CHARGE=";CH;"  ";: HTAB 1
  37. 360  HCOLOR= 0: DRAW 3 AT XX,156
  38. 370 XX =  PDL(0) *1.055: HCOLOR= 7: DRAW 3 AT XX,156
  39. 380 PX =  INT( PDL(0) *.117)
  40. 390  FOR I = LX TO 30
  41. 400  IF M%(I,LY) >0  THEN 490
  42. 410  NEXT 
  43. 420 LY = LY -1:LX = 1: IF LY >0  THEN 360
  44. 430  FOR I = 3 TO 30  STEP 3
  45. 440 M%(I,1) =  INT( SQR( RND(1) *9 +1))
  46. 450  HCOLOR= C(M%(I,1)): DRAW 4 AT (I -1) *9,0
  47. 460  NEXT 
  48. 470 LE = LE +1: IF LE >10  THEN LE = 10:AD = AD +.5: IF AD >4  THEN AD = 4
  49. 480 LY = 8: GOTO 780
  50. 490 LX = I: HCOLOR= 0
  51. 500 TM = M%(LX,LY)
  52. 510 M%(LX,LY) = 0: DRAW 4 AT (LX -1) *9,(LY -1) *19
  53. 520 NY = LY + INT(AD): IF NY >8  AND LY <8  THEN NY = 8
  54. 530  IF NY >8  THEN 1190
  55. 540 NX =  INT( RND(1) *5) -2 +LX
  56. 550  IF NX >30  OR NX <1  THEN 540
  57. 560 M%(NX,NY) = TM
  58. 570  HCOLOR= C(TM): DRAW 4 AT (NX -1) *9,(NY -1) *19
  59. 580  HCOLOR= 0: DRAW 3 AT XX,156
  60. 590 XX =  PDL(0) *1.055: HCOLOR= 7: DRAW 3 AT XX,156
  61. 600 PX =  INT( PDL(0) *.117)
  62. 610  FOR I = 1 TO 4
  63. 620  IF W%(NX,I) >0  THEN 720
  64. 630  NEXT 
  65. 640 EN = 159: GOSUB 1400
  66. 650  IF NX < >PX +1  THEN 780
  67. 660  POKE 768,150: POKE 769,5: CALL 770
  68. 670  GOSUB 1550
  69. 680 HN = HN +1
  70. 690  VTAB 23: PRINT MN,HN
  71. 700  IF HN = MX  THEN 1130
  72. 710  GOTO 780
  73. 720 EN = 133 +4 *I: GOSUB 1400
  74. 730  POKE 768,175: POKE 769,5: CALL 770
  75. 740  GOSUB 1550
  76. 750  HCOLOR= 0: DRAW W%(NX,I) AT (NX -1) *9 +2,EN
  77. 760 W%(NX,I) = W%(NX,I) -1
  78. 770  IF W%(NX,I) = 1  THEN  HCOLOR= 1: DRAW 1 AT (NX -1) *9 +2,EN
  79. 780  REM PLAYER MOVE
  80. 790 TI = LE
  81. 800  HCOLOR= 0: DRAW 3 AT XX,156
  82. 810 XX =  PDL(0) *1.055: HCOLOR= 7: DRAW 3 AT XX,156
  83. 820 PX =  INT( PDL(0) *.117)
  84. 830  IF  PEEK( -16287) <128  THEN 1070
  85. 840  IF CH <10  THEN 1070
  86. 850  IF CH <31  THEN  FLASH 
  87. 860 CH = CH -10: VTAB 24: PRINT "CHARGE=";CH;"  ";: HTAB 1: NORMAL 
  88. 870  IF M%(PX +1,8) >0  THEN I = 8: GOTO 1010
  89. 880  FOR I = 4 TO 1  STEP  -1
  90. 890  IF W%(PX +1,I) >0  THEN 950
  91. 900  NEXT I
  92. 910  FOR I = 7 TO 1  STEP  -1
  93. 920  IF M%(PX +1,I) >0  THEN 1010
  94. 930  NEXT I
  95. 940 EN = 0: GOSUB 1480: GOTO 1070
  96. 950 EN = 133 +I *4: GOSUB 1480
  97. 960  POKE 768,175: POKE 769,5: CALL 770
  98. 970  HCOLOR= 0: DRAW W%(PX +1,I) AT PX *9 +2,EN
  99. 980 W%(PX +1,I) = W%(PX +1,I) -1
  100. 990  IF W%(PX +1,I) = 1  THEN  HCOLOR= 1: DRAW 1 AT PX *9 +2,EN
  101. 1000  GOTO 1070
  102. 1010 EN = I *19: GOSUB 1480
  103. 1020  POKE 768,100: POKE 769,5: CALL 770
  104. 1030  GOSUB 1550
  105. 1040 MN = MN +M%(PX +1,I) *5: VTAB 23: PRINT MN,HN
  106. 1050 M%(PX +1,I) = 0
  107. 1060  HCOLOR= 0: DRAW 4 AT PX *9,(I -1) *19
  108. 1070 TI = TI +1: IF TI <11  THEN 800
  109. 1080  IF CH <16  THEN  FLASH 
  110. 1090 CH = CH +5: VTAB 24: PRINT "CHARGE=";CH;"  ";: HTAB 1
  111. 1100  NORMAL 
  112. 1110  GOTO 360
  113. 1120  POKE 768,30: POKE 769,5: CALL 770
  114. 1130 LX = 2:TM = 1: GOTO 1190
  115. 1140  INPUT "PLAY AGAIN? ";A$
  116. 1150  IF  LEFT$(A$,1) = "Y"  THEN 60
  117. 1160  IF  LEFT$(A$,1) < >"N"  THEN 1140
  118. 1170  TEXT 
  119. 1180  END 
  120. 1190  FOR I = (LX -1) *9 TO PX *9  STEP 3 * SGN(PX -LX +1)
  121. 1200  HCOLOR= C(TM): DRAW 4 AT I,140
  122. 1210  HCOLOR= 0: DRAW 4 AT I,140
  123. 1220  NEXT 
  124. 1230 I = PX *9
  125. 1240  FOR J = 1 TO 10
  126. 1250  HCOLOR= 0: DRAW 4 AT I,140
  127. 1260  HCOLOR= C(TM): DRAW 4 AT I,130
  128. 1270  POKE 768,50: POKE 769,5: CALL 770
  129. 1280  HCOLOR= 0: DRAW 4 AT I,130
  130. 1290  HCOLOR= C(TM): DRAW 4 AT I,140
  131. 1300  NEXT 
  132. 1310  HCOLOR= 0: DRAW 3 AT XX,156
  133. 1320  HCOLOR= 7
  134. 1330  DRAW 1 AT I,156: DRAW 1 AT I +3,156
  135. 1340  POKE 768,87: POKE 769,100: CALL 770
  136. 1350  POKE 768,103: POKE 769,50: CALL 770
  137. 1360  POKE 768,78: POKE 769,50: CALL 770
  138. 1370  POKE 768,87: POKE 769,100: CALL 770
  139. 1380  POKE 768,103: POKE 769,250: CALL 770
  140. 1390  GOTO 1140
  141. 1400  HCOLOR= 5
  142. 1410 ST = (NX -1) *9 +8
  143. 1420 ST = ST +NX - INT(NX/2) *2
  144. 1430  HPLOT ST,NY *19 TO ST,EN
  145. 1440  POKE 768,20: POKE 769,5: CALL 770
  146. 1450  HCOLOR= 0
  147. 1460  HPLOT ST,NY *19 TO ST,EN
  148. 1470  RETURN 
  149. 1480  HCOLOR= 6
  150. 1490 ST = 2 *( INT(XX/2)) +4
  151. 1500  HPLOT ST,156 TO ST,EN
  152. 1510  POKE 768,10: POKE 769,5: CALL 770
  153. 1520  HCOLOR= 0
  154. 1530  HPLOT ST,156 TO ST,EN
  155. 1540  RETURN 
  156. 1550  FOR K = 1 TO 2
  157. 1560  FOR J = 1 TO 4
  158. 1570  SCALE= J
  159. 1580  XDRAW 5 AT ST,EN
  160. 1590  NEXT J: NEXT K
  161. 1600  SCALE= 1: RETURN 
  162. 1610  HOME 
  163. 1620  PRINT "         WELCOME TO INVADERS"
  164. 1630  PRINT "          MP SOFTWARE, 1980"
  165. 1640  PRINT : PRINT "THE ALIENS ARE COMING!  THE OBJECT IS TO";
  166. 1650  PRINT "SHOOT AS MANY AS YOU CAN BEFORE THEY"
  167. 1660  PRINT "SHOOT YOU 5 TIMES OR REACH YOUR BATTLE"
  168. 1670  PRINT "STATION."
  169. 1680  PRINT : PRINT "IN THIS MAMMOTH LASER BATTLE YOU USE"
  170. 1690  PRINT "THE GAME PADDLE TO MOVE AND THE BUTTON"
  171. 1700  PRINT "TO FIRE YOUR LASER."
  172. 1710  PRINT : PRINT "YOU START WITH 250 CHARGE UNITS, AND"
  173. 1720  PRINT "EACH TIME YOU FIRE 10 UNITS ARE USED."
  174. 1730  PRINT "THE LASER CONSTANTLY RECHARGES ITSELF."
  175. 1740  PRINT : PRINT "BLUE MARTIANS ARE WORTH 5 POINTS, WHITE"
  176. 1750  PRINT "MARTIANS ARE WORTH 10 POINTS, AND RED"
  177. 1760  PRINT "MARTIANS ARE WORTH 15 POINTS EACH.  IF"
  178. 1770  PRINT "YOU ARE USING A BLACK AND WHITE TV, FAKE";
  179. 1780  PRINT "IT....": PRINT 
  180. 1790  RETURN 
  181. 1800 L = 770: GOSUB 1870
  182. 1810 L = 16384
  183. 1820  FOR MX = 1 TO 9: GOSUB 1870: NEXT MX
  184. 1830  RETURN 
  185. 1870  READ A$
  186. 1880  FOR I = 1 TO  LEN(A$)  STEP 2
  187. 1890 AD =  ASC( MID$ (A$,I,1)) -48
  188. 1900  IF AD >9  THEN AD = AD -7
  189. 1910 CH =  ASC( MID$ (A$,I +1,1)) -48
  190. 1920  IF CH >9  THEN CH = CH -7
  191. 1930  POKE L,AD *16 +CH
  192. 1940 L = L +1: NEXT I
  193. 1950  RETURN 
  194. 1960  DATA "AD30C088D005CE0103F009CAD0F5AE00034C020360"
  195. 1970  DATA "05000C00210036004700EA00"
  196. 1980  DATA "0D090909111B3B1B1B1309090929311B1B3B3B1300"
  197. 1990  DATA "2D2D2D2D353F3F3F3F372D2D2D2D353F3F3F3F3700"
  198. 2000  DATA "09290D111B3B1F132D2D2D353F3F3F3700"
  199. 2010  DATA "09092D2D292D0D09111B1B1B3B1F3F1B1B130909092D2D0D0909111B1B3F3F3F3F3F1B1309292D2D2D2D2D0D"
  200. 2020  DATA "111B3F3F1B3B1B3B3F13292D2D090D292D2D153F3F3F3F3F3F3F3F37292D2D2D292D2D2D151B3F3F3F3F3F3F3F"
  201. 2030  DATA  "1309292D0909092D0D111B1B3F3B3F1F3F1B13292D2D2D2D2D2D2D153B1F1B3F1B3F1B3B17290D092D092D"
  202. 2040  DATA "0929151B1B1B3F1B3F1B1B130909092D092D0909111B3F3F3F1B3F3F1F1300"
  203. 2050  DATA "363F24272C253C2C2D2E2E3E372E3E00"